﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using Cecropia.DTO;
using Cecropia.DAO;

namespace Cecropia.BO
{
    public class UsuarioBO
    {
        public UsuarioRC cadastrarUsuario(UsuarioRC usuarioRC)
        {

            UsuarioDTO usuario = new UsuarioDTO();
            usuario.Nome = usuarioRC.Nome;
            usuario.Email = usuarioRC.Email;
            usuario.Senha = usuarioRC.Senha;

            usuario.Codigo = new UsuarioDAO().salvar(usuario);
            usuarioRC.Codigo = usuario.Codigo;
            return usuarioRC;
        }

        public UsuarioRC ListarCategoria(UsuarioRC usuarioRC)
        {
            UsuarioDTO usuarioDTO = new UsuarioDTO();
            usuarioDTO.Codigo = usuarioRC.Codigo;

            UsuarioDAO usuarioDAO = new UsuarioDAO();
            usuarioDTO = usuarioDAO.buscarPorId(usuarioDTO);

            List<CategoriaRC> listaCategoriaRC = new List<CategoriaRC>();
            for (int i = 0; i < usuarioDTO.Categorias.Count; i++)
            {
                CategoriaRC crc = new CategoriaRC();
                crc.Codigo = usuarioDTO.Categorias.ElementAt(i).Codigo;
                crc.Descricao = usuarioDTO.Categorias.ElementAt(i).Descricao;
                listaCategoriaRC.Add(crc);
            }
            usuarioRC.Categorias = listaCategoriaRC;
            return usuarioRC;
        }

        public UsuarioRC autenticaLogin(UsuarioRC usuarioRC)
        {
            UsuarioDTO usuarioDTO = new UsuarioDTO();
            usuarioDTO.Nome = usuarioRC.Nome;
            usuarioDTO.Senha = usuarioRC.Senha;

            UsuarioDAO usuarioDAO = new UsuarioDAO();
            usuarioDTO =  usuarioDAO.buscarPorIdSenha(usuarioDTO);

            if (usuarioDTO != null)
            {
                usuarioRC.Codigo = usuarioDTO.Codigo;
                usuarioRC.Nome = usuarioDTO.Nome;
                usuarioRC.Senha = usuarioDTO.Senha;
                return usuarioRC;
            }
            else
            {
                return null;
            }
        }
    }
}